#ifndef __BUOLA_GUI_X11_CDOUBLEBUFFER_H__
#define __BUOLA_GUI_X11_CDOUBLEBUFFER_H__

#include <buola/gui/x11/cpixmap.h>
#include <buola/gui/cwindow.h>

namespace buola { namespace gui { namespace x11 {

class CDoubleBuffer : public CPixmap
{
public:
    CDoubleBuffer(CWindow *pWindow)
        :   mWindow(pWindow)
    {
        CSize_i lSize(pWindow->ClientRect().Size());
        if(pWindow->ClientRect().Undefined()||lSize.x<1||lSize.y<1)
            lSize={1,1};

//        Create(lSize,pWindow->GetPhysical());
        Create(lSize,(pWindow->PaintMode()&CWindow::EPaintMode::TRANSPARENT)?32:24);
    }

//    ~CDoubleBuffer()
//    {
//      back_trace();
//    }

////////////////////////////////////////
////////////////////////////////////////
////////////// Interface ///////////////
////////////////////////////////////////
////////////////////////////////////////
public:

////////////////////////////////////////
////////////////////////////////////////
//////////////// Helpers ///////////////
////////////////////////////////////////
////////////////////////////////////////
//Overridable
public:

////////////////////////////////////////
////////////////////////////////////////
///////////////// DATA /////////////////
////////////////////////////////////////
////////////////////////////////////////
protected:

////////////////////////////////////////
////////////////////////////////////////
/////////////// Friends ////////////////
////////////////////////////////////////
////////////////////////////////////////
    CWindow *mWindow;
};

/*namespace x11*/ } /*namespace gui*/ } /*namespace buola*/ }

#endif
